iT邦幫忙

2026 iThome 鐵人賽

0
AI Engineering

3分鐘 AI Agent導論系列 第 32

[3分鐘 AI Agent導論] Day32 -- 結構化索引:從訊息檢索到知識建模

  • 分享至 

  • xImage
  •  

結構化索引的思路是:索引之前先用LLM把知識整理一遍-- 歸納、抽象、建立關聯。多花一些計算資源,換取更好的檢索品質。業界目前主要有兩條路:樹狀層次(RAPTOR)和實體關聯圖(GraphRAG, graph-based RAG, 基於知識圖譜的檢索增強生成)

https://ithelp.ithome.com.tw/upload/images/20260911/20183533krsUUHOR6X.jpg

RAPTOR(Recursive Abstractive Processing for Tree-Organized Retrieval)採用自下而上的遞歸抽象方式。
它首先將長文件切分為小的文本塊做為葉節點(就是子節點),然後通過聚類算法將語意相近的葉節點分組--聚類類似於把圖書館的書按主題自動分堆:算法計算每本書(每個文本塊)之間的相似度,把最相似的歸為一類,每一類就代表一個主題。

例如在技術文件檢索中,關於sse指令的多個葉節點(ex."SSE2支持128位整數運算" "SSE4.1新增字符串比較指令")會被聚類到同一組,系統自動生成父節點摘要"x86 SIMD指令集的各代演進",從而在不同粒度上支持檢索。系統利用語言模型為每個分組生成一個更高層次的摘要,做為它們的"父節點"。這個過程不斷遞歸,最終形成一顆從具體細節(葉子)到高度概括總結(根)的知識樹。這種樹狀結構使得檢索可以在多個抽象層次上進行,既能精確回答細節問題,也能提供對宏觀概念的理解。

https://ithelp.ithome.com.tw/upload/images/20260911/20183533ZpPsEjK5A8.jpg

GraphRAG 將文件知識建模為由實體(entities) 和關係(Relationships)構成的知識圖譜。知識圖譜通過實體-關係-實體三元組構建訊息網路。
三元組用"主語-關係-賓語"的形式表達一條知識,例如(台北,是首都,中華民國)、(陳文章,就職於,台大)。大量三元組交織在一起,就形成一張知識織網。知識圖譜的優勢在於體面兩個方面。

1.多跳關係推理。這是知識圖譜最不可替代的能力。當用戶問"我的醫生所在醫院的地址"時,系統需要依次解析"用戶→醫生→醫院→地址"這條關係鏈。在扁平化的記憶存儲中,這類多跳查詢要麼需要多次獨立檢索再由LLM拼接(效率低且容易鏈斷),要麼無法表達。知識圖譜的圖結構天然支持沿關係邊遍歷,使得這類查詢既高效又可靠。
2.實體消歧(entity disambiguation)。這同樣是知識圖譜的強項。注意它與前文稠密嵌入部分討論的"一詞多義"不同,判斷"bank"在句中指河岸還是銀行,是詞義消歧(word sense disambiguation)的任務,靠上下文感知的嵌入即可解決; 而區分現實世界中兩個同名的"陳醫生",是實體消歧-- 需要維護關於實體本身的知識。
在4種存儲格式中--advanced JSON Cards靠person、relationships等人工設計的自斷來區分用戶的多位"陳醫生"在知識圖譜中,這種消歧成為圖結構的原生能力:陳醫生A與陳醫生B,是中不同節點,通過各自的關係邊連接到不同的人和機構,消歧過程無須額外推理。

GraphRAG先利用LLM從文本中提取關鍵實體(人、地點、概念、術語),再提取實體間的各種關係。系統隨後基於圖譜,通過社區發現(community detection,其實我覺得翻得有點爛)算法找出語意緊密的實體集群並生成摘要,從而自動發現知識中自然形成的主題聚類,形成思維導圖。這種網路化知識表示特別擅長回答涉及多實體複雜關係的問題。

然而,做為用戶記憶的存儲方案,知識圖譜面臨固有侷限:將自然語言轉為三元組不可避免地導致語意降級--"如果下周還下雨,我就取消去海邊的計畫,改躺在家裡"這句話包含條件判斷和時間依賴,但被分解為三元組後只剩孤立的事實片段(我,有計畫,海灘旅行)和(我,有備案,躺在家),條件邏輯與時間依賴全部丟失。此外三元組提取的準確性高度依賴LLM的理解能力,錯誤提取會導致知識汙染。

因此,實踐中的推薦策略為分層互補:以完整自然語言保存核心訊息(語意完整性),輔以結構化元數據進行索引與檢索(兼顧查詢效率); 在需要多跳推理與精確消歧的垂直場面(如醫療問診、法律案件、家族關係管理),將知識圖譜做為專項索引手段,與自然語言記憶協同工作。(有沒有發現基本上許多手段都採用混合式,並非非黑即白)

什麼時候需要結構化索引?
不是所有場景都需要RAPTOR 或 GraphRAG。前面介紹的混合檢索(稠密+稀疏+重排序)已經能覆蓋大多數需求。
一個簡單判斷標準:如果查詢主要是"找到包含某訊息的文檔片段"(ex."退款政策是什麼"?),混合檢索就夠了。
如果查詢經常需要跨文件綜合(ex.CPU的SSE指令集和AVX指令集在架構上有什麼區別")或"多層次導航"(ex."從整體架構到具體指令的逐步深入"),結構化索引才值得投入。
相比簡單的混合檢索方案,結構化索引的代價是在索引構建和查詢時都需要更多次LLM調用,成本和延遲都顯著增加。

OpenAI 推出 Agents API 公開測試版,開發者可用單一 API 呼叫建立雲端代理,直接沿用 Codex 背後的 Harness 與沙盒基礎設施,不額外收費、只按 Token 與工具用量計價。
https://www.aiposthub.com/openai-agents-api-public-beta/


上一篇
[3分鐘 AI Agent導論] Day31 -- 超越扁平文本
系列文
3分鐘 AI Agent導論32
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言